#define _CRT_SECURE_NO_WARNINGS 1
//
//#include<iostream>
//
//namespace bit
//{
//	int rand = 10;
//
//	int Add(int left, int right)
//	{
//		return left + right;
//	}
//
//	struct Node
//	{
//		struct Node* next;
//		int val;
//	};
//
//	namespace N1
//	{
//		int a;
//		int b;
//
//		int Add(int left, int right)
//		{
//			return left + right;
//		}
//	}
//
//	namespace N2
//	{
//		int c;
//		int d;
//
//		int Sub(int left, int right)
//		{
//			return left - right;
//		}
//	}
//}
//
//namespace N1
//{
//	int a;
//	int b;
//
//	int Mul(int left, int right)
//	{
//		return left * right;
//	}
//}
//using namespace N1;
//int main()
//{
//	a = 8;
//	printf("%d\n", a);
//	return 0;
//}


#include <iostream>
using namespace std;

//int main()
//{
//	/*double d = 6.66;
//	std::cout << d << std::endl;
//	cout << "Hello World" << endl;
//
//	cin >> d;
//	cout << d << endl;*/
//
//	int a;
//	double b;
//	char c;
//
//	cin >> a >> b >> c;
//	cout << a << ' ' << b << ' ' << c << endl;
//
//	return 0;
//}

//namespace N
//{
//	int x = 10;
//}
//
//void Fun(int a = 6)
//{
//	cout << a << endl;
//}
//
//void Fun1(int a = N::x, int b = 6, int c = 9)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl;
//}
//
//int main()
//{
//	/*Fun();
//	Fun(9);*/
//
//	//Fun1();
//	N::x = 3;
//	Fun1();
//	return 0;
//}


//int Add(int a, int b)
//{
//	cout << "int Add(int a, int b)" << endl;
//	return a + b;
//}
//
//double Add(double a, double b)
//{
//	cout << "double Add(double a, double b)" << endl;
//	return a + b;
//}
//
//void f()
//{
//	cout << "void f()" << endl;
//}
//
//void f(int a)
//{
//	cout << "void f(int a)" << endl;
//}
//
//void fun(int a, char c)
//{
//	cout << "void fun(int a, char c)" << endl;
//}
//
//void fun(char c, int a)
//{
//	cout << "void fun(char c, int a)" << endl;
//}


//int main()
//{
//	const int a = 6;
//	const int& ra = a;
//	const int& rra = a;
//
//	cout << ra << endl;
//	cout << &a << endl;
//	cout << &ra << endl;
//	cout << &rra << endl;
//	return 0;
//}


//void Swap(int& left, int& right)
//{
//	int tmp = left;
//	left = right;
//	right = tmp;
//}
//
//int Count()
//{
//	static int n = 0;
//	n++;
//
//	return n;
//}
//
//int main()
//{
//	int a = 6;
//	int b = 3;
//	cout << a << ' ' << b << endl;
//	Swap(a, b);
//	cout << a << ' ' << b << endl;
//
//	const int& c = Count();
//	const int& f = 9;
//
//	int d = Count();
//	cout << d << endl;
//	return 0;
//}


#include <time.h>
struct A
{
	int a[10000];
};

//A TestFun1(A a) { return a; }
//
//A& TestFun2(A& a) { return a; }
//
//int main()
//{
//	A a;
//
//	size_t begin1 = clock();
//	for (int i = 0; i < 10000; i++)
//		TestFun1(a);
//	size_t end1 = clock();
//
//	size_t begin2 = clock();
//	for (int i = 0; i < 10000; i++)
//		TestFun2(a);
//	size_t end2 = clock();
//
//	cout << end1 - begin1 << endl;
//	cout << end2 - begin2 << endl;
//	return 0;
//}

typedef char* pstring;

int main()
{
	//const pstring p1;
	const pstring* p2;
	const char* p3;
	char* const p4;
	return 0;
}